Systems have been developed to enable the propagation and management of data, transactions and events in a data stream either within a database, or from one database to another. For example, such a system is described in U.S. patent application Ser. No. 10/308,924 now U.S. Pat. No. 6,889,231 entitled “Asynchronous Information Sharing System”, filed on Dec. 2, 2002 by Benny Souder, Dieter Gawlick, Jim Stamos, Alan Downing.
In such systems, a data stream may be used to route published information to subscribed destinations. The information sharing may be unidirectional, bi-directional, or may involve numerous unidirectional and bi-directional information sharing relationships between numerous entities. The result is a new feature that provides greater functionality and flexibility than traditional solutions for capturing and managing events, and sharing the events with other databases and applications.
Typically, before information sharing relationship can begin operation, certain preliminary setup operations must be performed. For example, when the information sharing relationship is between database objects that reside in different databases, one issue in the setup and administration of such an information sharing system is how to “copy” database objects located at a source database to destination databases that are interested in the changes to these objects. In some cases, the objects may already exist at these destination databases. In other cases, it does not and needs to be created.
Another issue arises when the copy of the database object is taken at some point-in-time in the past. Specifically, in order to be consistent with the source object, changes that have occurred since the copy is taken need to be applied at the destination site. However, care must be taken to avoid reapplying changes that are already reflected in the copy.
The process of making consistent copies of database objects at destination databases is referred to herein as “instantiation”. It is desirable to perform instantiation in a manner that is efficient and accurate, but which does not place a heavy burden on the administrator of the system. Specifically, it is desirable to perform instantiation without locking the source object for the duration of the instantiation operation. Further it is desirable to provide an instantiation technique that is flexible enough to take advantage of a wide variety of export mechanisms, such as pluggable/transportable tablespaces.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.